package br.com.ericogr.hanoi.tarefa;

import java.util.List;

import br.com.ericogr.hanoi.entidade.Entidade;

import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.SurfaceHolder;

public class TarefaGraficaMovePrato extends TarefaMovePrato {
    private static final String NOME = "Tarefa Grafica MovePrato";
            
    private SurfaceHolder mSurfaceHolder;
    private Paint mBlackPaint;
    
    public TarefaGraficaMovePrato(SurfaceHolder surfaceHolder, List<Entidade> entidades) {
        super(NOME, 0, entidades);

        mSurfaceHolder = surfaceHolder;
        mBlackPaint = new Paint();
        mBlackPaint.setARGB(255, 0, 0, 0);
    }
    
    @Override
    public void executar() {
        Canvas canvas = null;
        
        try {
            canvas = mSurfaceHolder.lockCanvas(null);
            
            synchronized (mSurfaceHolder) {
                if (canvas != null) {
                    canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), mBlackPaint);
                    
                    for (Entidade entidade : getEntidades()) {
                        entidade.processamentoGrafico(canvas);
                    }
                }
            }
        } finally {
            if (canvas != null) {
                mSurfaceHolder.unlockCanvasAndPost(canvas);
            }
        }
    }
    
}